package com.cskaoyan.javase.oop1._10block._1loacl;

/**
 * @description: 局部代码块
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * > 什么是局部代码块？
 * 定义在局部位置，使用以下声明方式声明的代码块，称之为局部代码块
 * {}
 * 注：局部代码块当中还可以嵌套局部代码块
 * 作用:
 *      1.局部代码块可以用来限制局部变量的生命周期，当代码从上到下执行完该作用域后，会立即释放该局部变量
 * - 及早释放资源，提升效率，提升内存利用率
 *      2.局部代码块可以用来限制局部变量的作用域，可以在一个方法中定义多个同名局部变量
 *
 * 坏处: 显著增加代码层级,增加代码阅读的难度,让代码变得奇怪
 *
 * 比起局部代码块的一丢丢好处,它的缺点是非常大的
 * **现代的JVM已经比较成熟了，不缺少这样一点点性能，使用局部代码块得不偿失**
 *
 */
public class Demo {

    public static void main(String[] args) {
        //声明一个局部代码块,并且局部代码块是可以嵌套的
        int a = 10;
        {
            int b = 10;
            {
                int c = 30;
                {
                    int d = 40;
                }
            }
        }
        int b = 20;
        int c = 30;
        int d = 40;
        for (int i = 0; i < 10; i++) {

        }
        for (int i = 0; i < 5; i++) {

        }
    }
}
